package net.xju3_4.service;

import net.xju3_4.common.utils.PageInfo;
import net.xju3_4.entity.CarFavorite;

/**
 * 车辆收藏服务接口
 */
public interface CarFavoriteService {
    
    /**
     * 添加收藏
     * @param userId 用户ID
     * @param carId 车辆ID
     * @return 是否成功
     */
    boolean addFavorite(Integer userId, Integer carId);
    
    /**
     * 取消收藏
     * @param userId 用户ID
     * @param carId 车辆ID
     * @return 是否成功
     */
    boolean removeFavorite(Integer userId, Integer carId);
    
    /**
     * 检查是否已收藏
     * @param userId 用户ID
     * @param carId 车辆ID
     * @return 是否已收藏
     */
    boolean isFavorited(Integer userId, Integer carId);
    
    /**
     * 获取用户收藏列表（分页）
     * @param userId 用户ID
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 分页信息
     */
    PageInfo<CarFavorite> getUserFavorites(Integer userId, int pageNum, int pageSize);
    
    /**
     * 获取车辆的收藏数量
     * @param carId 车辆ID
     * @return 收藏数量
     */
    int getFavoriteCount(Integer carId);
    
    /**
     * 获取用户收藏总数
     * @param userId 用户ID
     * @return 收藏总数
     */
    int getUserFavoriteCount(Integer userId);
}
